Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 18 Menü-, Symbol- und Statusleiste
  gp 18.1 Das Steuerelement »ToolStripContainer«
  gp 18.2 Bereitstellen eines Menüs
    gp 18.2.1 Die Hierarchie der Menüklassen
    gp 18.2.2 Das Erzeugen eines Menüs
    gp 18.2.3 Die Eigenschaften der Menüelemente »ToolStripMenuItem«
    gp 18.2.4 »ToolStripComboBox« und »ToolStripTextBox«
    gp 18.2.5 Ereignisse
    gp 18.2.6 Beispielprogramm
  gp 18.3 Kontextmenüs
    gp 18.3.1 Das Standardverhalten eines Kontextmenüs ändern
    gp 18.3.2 Ereignisse des Kontextmenüs
    gp 18.3.3 Das Kontextmenü einer Textbox
  gp 18.4 Die Zwischenablage
    gp 18.4.1 Speichern und Abrufen von Daten aus der Zwischenablage
    gp 18.4.2 Andere Methoden, um Daten in die Zwischenablage zu schreiben und abzurufen
    gp 18.4.3 Mehrere Datenformate in der Zwischenablage
    gp 18.4.4 Eigene Datenformate in die Zwischenablage schreiben
    gp 18.4.5 Leeren der Zwischenablage
    gp 18.4.6 Beispielprogramm – das Menü »Bearbeiten«
  gp 18.5 Die Symbolleiste
    gp 18.5.1 Die Eigenschaften der Symbolleistenschaltflächen
    gp 18.5.2 DropDown-Buttons in Symbolleisten
    gp 18.5.3 Ein Zwitter vom Typ »ToolStripSplitButton
    gp 18.5.4 Comboboxen in Symbolleisten
    gp 18.5.5 Textboxen in Symbolleisten
    gp 18.5.6 Fortschrittsbalken (ProgressBar)
    gp 18.5.7 Die Ereignisse der Symbolleiste programmieren
    gp 18.5.8 Beispiel einer komplexeren Symbolleiste
  gp 18.6 Die Statusleiste
    gp 18.6.1 Eine Statusleiste bereitstellen
    gp 18.6.2 Die in der Statusleiste integrierten Steuerelemente


Galileo Computing

18.3 Kontextmenüs  downtop

Kontextmenüs werden angezeigt, wenn der Anwender mit der rechten Maustaste auf die Form oder ein Steuerelement klickt. Er kann danach aus einer Liste eine der für diese Komponente angebotenen Optionen wählen. Ein Kontextmenü ist einfacher zu entwickeln als ein herkömmliches Menü, da ein Hauptmenü nicht erforderlich ist und ein Kontextmenü nur selten eine tiefere Gliederung hat. Kontextmenüs werden durch das Steuerelement Context-MenuStrip beschrieben, dass Sie einfach durch Doppelklick der Form hinzufügen. Sie können der Form mehrere Kontextmenüs hinzufügen, da sich in der Regel die Kontextmenüs der einzelnen Komponenten unterscheiden. Die Zuordnung eines Kontextmenüs zu einem bestimmten Steuerelement erfolgt über die Eigenschaft ContextMenuStrip des jeweiligen Controls.

Einige Steuerelemente besitzen bereits ein eingebautes Kontextmenü, beispielsweise die Textbox. Weisen Sie einem solchen Steuerelement ein benutzerdefiniertes Kontextmenü zu, wird das eingebaute ausgeblendet. Diese Tatsache können Sie sich zunutze machen, um ein unerwünschtes Kontextmenü vollständig auszublenden. Andererseits hat das Ausblenden unter Umständen auch den Nebeneffekt, dass Sie zwar gerne das eingebaute Kontextmenü nutzen, aber dessen Fähigkeiten ergänzen wollen. Ihnen bleibt es dann nicht erspart, das Verhalten des ausgeblendeten Kontextmenüs selbst zu programmieren.

Die Menüelemente eines Kontextmenüs sind vom Typ ToolStripMenuItem. Dieser Typ wurde weiter oben schon genauer beschrieben. Wir können uns daher an dieser Stelle eine Wiederholung des Gesagten ersparen.


Galileo Computing

18.3.1 Das Standardverhalten eines Kontextmenüs ändern  downtop

Wollen Sie vom Standardverhalten abweichen und das Öffnen eines Kontextmenüs einem anderen Ereignis zuordnen oder das Kontextmenü an einer anderen als der standardmäßig vordefinierten Position anzeigen lassen, müssen Sie die Anzeige mit der Show-Methode des ContextMenuStrip-Objekts einleiten:


Public Sub Show(Control, Point)

Dem Aufruf wird im ersten Parameter die Referenz auf die Windows-Komponente übergeben, der das Kontextmenü zugeordnet werden soll. Der zweite Parameter erwartet die Angabe der Koordinaten, an denen das Menü angezeigt werden soll. Es handelt sich dabei um die Koordinaten relativ zu dem im ersten Parameter angeführten Steuerelement.

Angenommen Sie beabsichtigen, das Kontextmenü einer Form nicht an der Spitze der Mauszeigerposition, sondern im Ursprungspunkt der Form zu öffnen, lautet die Anweisung dazu wie folgt:


contextMenuStrip1.Show(me, New Point(0, 0)

Dabei sei contextMenuStrip1 die Referenz auf ein ContextMenuStrip-Objekt. Jetzt muss noch überlegt werden, welches Ereignis sich für die Anzeige des Kontextmenüs eignet. Üblicherweise handelt es sich dabei um das Ereignis MouseUp, das ausgelöst wird, wenn eine der Maustasten losgelassen wird. Natürlich kann man auch ein beliebiges anderes Ereignis wählen. Inwieweit das allerdings sinnvoll ist, sei dahingestellt. MouseUp ist vom Typ MouseEventHandler. Die Definition lautet:


Public Event MouseUp As MouseEventHandler

Der Ereignishandler empfängt ein Objekt vom Typ MouseEventArgs mit Daten zum Ereignis. Dazu gehört auch die Eigenschaft Button:


Public ReadOnly Property Button As MouseButtons

Die Aufzählung MouseButtons enthält unter anderem drei Konstanten, welche die drei Maustasten beschreiben: Left, Middle und Right. Im Ereignishandler des MouseUp-Events muss nur geprüft werden, welche Maustaste den Aufruf verursacht hat. Handelt es sich um die rechte Maustaste, wird die Methode Show des ContextMenuStrip-Objekts unter Übergabe der gewünschten Argumente aufgerufen.


Private Sub Form1_MouseUp(ByVal sender As Object, _
ByVal e As MouseEventArgs) Handles MyBase.MouseUp
If e.Button = Windows.Forms.MouseButtons.Right Then
ContextMenuStrip1.Show(Me, New Point(0, 0))
End If
End Sub


Galileo Computing

18.3.2 Ereignisse des Kontextmenüs  downtop

Öffnet ein Anwender mit der üblicherweise rechten Maustaste das Kontextmenü einer Komponente, treten zwei Ereignisse auf: Opening, bevor das Kontextmenü geöffnet wird, und Opened direkt nach dem Öffnen. Damit verhalten sich beide Ereignisse genauso wie die Ereignisse DropDownOpening und DropDownOpened eines ToolStripMenuItem-Objekts.

Im ersten Moment erscheint es so, als wären die Ereignisse identisch. Dennoch gibt es einen Unterschied: Der zweite Parameter von Opening ist vom Typ CancelEventArgs und ermöglicht über die Eigenschaft Cancel, das eingeleitete Öffnen des Kontextmenüs aufgrund gewisser Umstände abzubrechen. Dazu ist e.Cancel=True zu setzen. Diese Möglichkeit bietet DropDownOpening nicht.


Galileo Computing

18.3.3 Das Kontextmenü einer Textbox  toptop

Eine Textbox nimmt eine besondere Stellung ein: Standardmäßig bietet sie zur Laufzeit ein Kontextmenü an, das unter anderem auch die Optionen zum Ausschneiden, Kopieren, Einfügen und Löschen enthält. Sobald eine Textbox jedoch mit einem benutzerdefinierten Kontextmenü verbunden wird, stehen diese Auswahlmöglichkeiten nicht mehr zur Verfügung und sollten daher zusätzlich implementiert werden.

Die genannten Operationen benutzen die Zwischenablage als Medium zum Datenaustausch. Natürlich können wir uns der Methoden Cut, Copy und Paste der Textbox bedienen, um zum gewünschten Ergebnis zu kommen. Aber andererseits bietet es sich auch an, an dieser Stelle intensiver auf die Zwischenablage einzugehen, um am Ende die Interaktionen zwischen Textbox und Zwischenablage auf elementarer Basis zu programmieren.

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de